// pages/profile/index.ts
Page({
  /**
   * 页面的初始数据
   */
  data: {
    userinfo: null,
  },
  async onLoad() {
    const res = await wx.http({
      url: '/userInfo',
      // header: { Authorization: `Bearer ${app.token}` },
    })
    this.setData({
      userinfo: res.data,
    })
  },
  // 上传头像
  onChooseAvatar(e) {
    // 保存头像临时地址
    const { avatarUrl } = e.detail
    // 调用上传文件接口，拿到头像在线地址
    wx.uploadFile({
      url: wx.http.baseURL + '/upload', //开发者服务器地址
      filePath: avatarUrl, //要上传文件资源的路径 (本地路径)
      header: { Authorization: `Bearer ${getApp().token}` }, //HTTP 请求 Header，Header 中不能设置 Referer
      name: 'file', //文件对应的 key，开发者在服务端可以通过这个 key 获取文件的二进制内容
      formData: { type: 'avatar' },
      success: async (res) => {
        // 后端返回的数据时json字符串格式，需要转为对象
        const resData = JSON.parse(res.data)
        const avatar = resData.data.url //获取到在线图片地址
        //  发送修改个人信息请求，完成头像修改
        const avatarRes = await wx.http.put('/userInfo', { avatar })
        console.log(avatarRes)
        // 给出提示
        wx.utils.toast('修改头像成功')
        // 及时更新头像
        this.setData({
          'userinfo.avatar': avatar,
        })
      },
    })
  },
  // 修改昵称
  async onNickName(e) {
    const nickName = e.detail
    if (!nickName) return wx.utils.toast('微信昵称不能为空')
    // 调用接口 完成昵称修改
    await wx.http.put('/userInfo', { nickName })
    wx.utils.toast('微信昵称修改成功')
    //  实时更新对象中的某个属性
    this.setData({
      'userinfo.nickName': nickName,
    })
  },
})
